home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2003-02-21 | 42.8 KB | 1,110 lines
<%@ Language=VBScript CODEPAGE=65001 %> <!--#include file="include/wmsLocStrings.inc"--> <!--#include file="include/wmsServerHash.inc"--> <!--#include file="include/wmsPlugins.inc"--> <!--#include file="include/wmsHeader.inc"--> <!--#include file="include/wmsPageBanner.inc"--> <!--#include file="include/wmsError.inc"--> <!--#include file="plugin_loading.inc"--> <% '+------------------------------------------------------------------------- ' ' Microsoft Windows Media ' Copyright (C) Microsoft Corporation. All rights reserved. ' ' File: MulticastSink.asp ' ' Contents: ' '-------------------------------------------------------------------------- BeginErrorHandling ConnectToPlugin ConnectToPluginAdmin on error resume next Dim dwBCastFlags dwBCastFlags = g_objPubPoint.BroadcastStatus Dim bPubPointRunningPluginEnabled bPubPointRunningPluginEnabled = ( ( WMS_BROADCAST_PUBLISHING_POINT_STARTED_WITHOUT_DATA = dwBCastFlags ) or _ ( WMS_BROADCAST_PUBLISHING_POINT_STARTED = dwBCastFlags ) ) and _ ( WMS_PLUGIN_ENABLED and g_objPlugin.Status ) Dim strNewIPAddr Dim dwIPPort Dim lTTLOption Dim lTTLValue Dim bEnableUnicastRollover Dim bLocalPPRollover Dim strUnicastRolloverPP Dim strIPAddr Dim strLoggingURL lTTLOption = 0 lTTLValue = 0 '/////////////////////// Dim rgMcastScopes() Dim dwNumScopes Dim bError Dim dwProductType Dim bRunningOnWhistlerAdvServer ' ' Quick sanity check-- we must be running Advanced Server or the plug-in won't be available ' dwProductType = g_objServer.OSProductType if( 0 <> err.number ) then bRunningOnWhistlerAdvServer = FALSE err.Clear else bRunningOnWhistlerAdvServer = CBool( WMS_OS_PRODUCT_ADVANCED and dwProductType ) end if ' Fill these in using the form in case we have to show an error page-- we want the user's values filled in strIPAddr = g_objPluginAdmin.DestinationMulticastIPAddress strNewIPAddr = RemoveDangerousCharacters( Left( GetFormStr( "IPAddress" ), 15 ) ) dwIPPort = GetFormDbl( "port" ) Dim szTmpTTL szTmpTTL = GetFormStr( "TTL" ) if( 0 < Len( szTmpTTL ) ) then lTTLOption = szTmpTTL else lTTLOption = 0 end if lTTLValue = GetFormDbl( "customTTL" ) bEnableUnicastRollover = 0 < Len( GetFormStr( "enableUnicastRollover" ) ) bLocalPPRollover = CBool( "localPP" = GetFormStr( "RolloverToLocalPP" ) ) strUnicastRolloverPP = RemoveDangerousCharacters( Left( GetFormStr( "otherPPURL" ), MAX_PATH ) ) strLoggingURL = RemoveDangerousCharacters( Left( GetFormStr( "loggingURL" ), MAX_PATH ) ) Const SCOPEIP = 0 Const SCOPEDESC = 1 Const WMS_UNICAST_ROLLOVER_URL_OPTIONS_NONE = 0 Const WMS_UNICAST_ROLLOVER_URL_OPTIONS_DEFAULT = 1 Const WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM = 2 dwNumScopes = 0 bError = FALSE '/////////////////////////////////////////////////////////////// Err.Clear on error resume next Dim strOp strOp = GetFormStr( "submit" ) if( 0 < Len( strOp ) ) then ' use a do-while-false structure to break out upon first error do Session( "PageReloadedToDisplayError" ) = 0 err.Clear if( ( 0 < Len( strNewIPAddr ) ) and ( 0 <> strcomp( strIPAddr, strNewIPAddr, vbTextCompare ) ) ) then g_objPluginAdmin.DestinationMulticastIPAddress = CStr( strNewIPAddr ) if( ErrorDetected( "IPAddr" ) ) then bError = TRUE exit do end if end if if( 0 >= dwIPPort ) then err.raise( -1 ) err.description = RemoveDangerousCharacters( L_SPECIFYPORT_TEXT ) ErrorDetected( "IPPort" ) bError = TRUE exit do else if( dwIPPort <> g_objPluginAdmin.DestinationMulticastPort ) then if( ( 0 >= dwIPPort ) or ( 65536 <= dwIPPort ) )then Raise( -1 ) Err.Description = RemoveDangerousCharacters( L_INVALIDPORTENTRY_TEXT ) else err.Clear g_objPluginAdmin.DestinationMulticastPort = dwIPPort end if if( ErrorDetected( "IPPort" ) ) then bError = TRUE exit do end if end if end if if( 0 <> lTTLOption ) then lTTLValue = lTTLOption end if if( ( 0 >= lTTLValue ) or ( 255 < lTTLValue ) ) then err.Raise( -1 ) if( 0 <> lTTLValue ) then err.description = RemoveDangerousCharacters( L_SPECIFYTTL_TEXT ) ErrorDetected( "customTTL" ) bError = TRUE exit do else err.description = RemoveDangerousCharacters( L_SPECIFYTTL_TEXT ) ErrorDetected( "autoTTL" ) bError = TRUE exit do end if else if( CDbl( lTTLValue ) <> g_objPluginAdmin.MulticastTtl ) then g_objPluginAdmin.MulticastTtl = lTTLValue if ErrorDetected( "customTTL" ) then err.description = RemoveDangerousCharacters( L_SPECIFYTTL_TEXT ) Session( "ErrorDescription" ) = err.Description bError = TRUE exit do end if end if end if Dim dwRollOpts dwRollOpts = g_objPluginAdmin.UnicastRolloverURLOptions if( FALSE = bEnableUnicastRollover ) then if( WMS_UNICAST_ROLLOVER_URL_OPTIONS_NONE <> dwRollOpts ) then g_objPluginAdmin.UnicastRolloverURLOptions = WMS_UNICAST_ROLLOVER_URL_OPTIONS_NONE dwRollOpts = WMS_UNICAST_ROLLOVER_URL_OPTIONS_NONE end if elseif( bLocalPPRollover )then if( WMS_UNICAST_ROLLOVER_URL_OPTIONS_DEFAULT <> dwRollOpts ) then g_objPluginAdmin.UnicastRolloverURLOptions = WMS_UNICAST_ROLLOVER_URL_OPTIONS_DEFAULT dwRollOpts = WMS_UNICAST_ROLLOVER_URL_OPTIONS_DEFAULT if ErrorDetected( "localPP" ) then bError = TRUE exit do end if end if elseif( WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM <> dwRollOpts ) then g_objPluginAdmin.UnicastRolloverURLOptions = WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM dwRollOpts = WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM g_objPluginAdmin.UnicastRolloverURL = strUnicastRolloverPP if ErrorDetected( "otherPP" ) then bError = TRUE exit do end if end if if( WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM = g_objPluginAdmin.UnicastRolloverURLOptions ) then if( 0 <> StrComp( g_objPluginAdmin.UnicastRolloverURL, strUnicastRolloverPP, vbTextCompare ) ) then g_objPluginAdmin.UnicastRolloverURL = strUnicastRolloverPP if ErrorDetected( "otherPP" ) then bError = TRUE exit do end if if( 0 <> StrComp( g_objPluginAdmin.UnicastRolloverURL, strUnicastRolloverPP, vbTextCompare ) ) then err.Raise -2, "multicastsink.asp", "plugin admin failed to accept change", 0, 0 if ErrorDetected( "otherPP" ) then bError = TRUE exit do end if end if end if end if strWhichNIC = GetFormStr( "NICIP" ) if( 0 < Len( strWhichNIC ) ) then if( 0 = CInt( strWhichNIC ) ) then g_objPluginAdmin.LocalIPAddress = "" else strWhichAddr = CStr( g_objServer.AvailableIPAddresses( CInt( strWhichNIC ) - 1 ) ) if( 0 <> strComp( CStr( g_objPluginAdmin.LocalIPAddress ), strWhichAddr, vbTextCompare ) ) then g_objPluginAdmin.LocalIPAddress = strWhichAddr end if end if end if if( 0 <> strcomp( CStr( strLoggingURL ), g_objPluginAdmin.LoggingURL, vbTextCompare ) ) then g_objPluginAdmin.LoggingURL = CStr( strLoggingURL ) if ErrorDetected( "loggingURL" ) then bError = TRUE exit do end if end if Loop Until TRUE Err.Clear if( bError ) then Session( "PageReloadedToDisplayError" ) = 1 else Response.Redirect "../pubpoints/pubpoint_props.asp?server=" & g_strQueryStringServer & "&ppID=" & g_strPubPointID & "&category=" & g_strCategory & "&pluginIndex=" & qs( "pluginIndex" ) end if else ' op wasn't OK if( 1 <> Session( "PageReloadedToDisplayError" ) ) then dwIPPort = g_objPluginAdmin.DestinationMulticastPort lTTLValue = g_objPluginAdmin.MulticastTtl Select Case( lTTLValue ) case 1 lTTLOption = 1 case 32 lTTLOption = 32 case 64 lTTLOption = 64 case 128 lTTLOption = 128 case 255 lTTLOption = 255 case else lTTLOption = 0 End Select Dim dwRolloverOpts dwRolloverOpts = g_objPluginAdmin.UnicastRolloverURLOptions if( WMS_UNICAST_ROLLOVER_URL_OPTIONS_NONE = dwRolloverOpts ) then bEnableUnicastRollover = FALSE elseif( WMS_UNICAST_ROLLOVER_URL_OPTIONS_DEFAULT = dwRolloverOpts ) then bEnableUnicastRollover = TRUE bLocalPPRollover = TRUE elseif( WMS_UNICAST_ROLLOVER_URL_OPTIONS_CUSTOM = dwRolloverOpts ) then bEnableUnicastRollover = TRUE bLocalPPRollover = FALSE end if strUnicastRolloverPP = g_objPluginAdmin.UnicastRolloverURL strLoggingURL = g_objPluginAdmin.LoggingURL end if end if '/////////////////////////////////////////////////////////////// sub BuildNICIPOptionList Dim strCurrAddr strCurrAddr = g_objPluginAdmin.LocalIPAddress %><option value="0"><%= L_USEANYIPADDRESS_TEXT %></option> <% for i = 0 to g_objServer.AvailableIPAddresses.count - 1 strEachAddr = CStr( g_objServer.AvailableIPAddresses( i ) ) %><option value="<%= i + 1 %>" <% if( 0 = strComp( strCurrAddr, strEachAddr, vbTextCompare ) ) then %> selected <% end if %> ><%= strEachAddr & vbNewLine & vbNewLine %><% next end sub WriteHTMLHeader( g_strDecodedServerName ) %> <link rel="stylesheet" type="text/css" href="<%= Session( "cssName" ) %>"> <% WritePluginJSUtils %> <script language="JavaScript"> <!-- /*@cc_on @*/ var g_bPubPointPathAlerted = false; var g_bLoggingURLAlerted = false; ////////////////////////////////////////////////////////////////////////// function ValidatePubPointPath() { <% jsTRY %> var szPath; var szName; var bCanBeEnabled; var bValidPath; bCanBeEnabled = true; szPath = new String( document.forms.pluginForm.otherPPURL.value ); szName = new String( document.forms.pluginForm.otherPPURL.value ); if( ( 0 == szPath.length ) || ( 0 == szName.length ) || ( "#ff0000" == document.forms.pluginForm.otherPPURL.style.color ) ) { bCanBeEnabled = false; } bValidPath = false; var szIllegalChars = /;|\^|\'|\<|\>|\`|\f|\n|\r/gi; if( -1 == szPath.search( szIllegalChars ) ) { bValidPath = true; } if( false == bValidPath ) { document.forms.pluginForm.otherPPURL.style.color = "#ff0000"; document.forms.pluginForm.ok.disabled = true; window.status = "<%= Server.HTMLEncode( L_INVALIDCHARSINPATH_TEXT ) %>"; if( false == g_bPubPointPathAlerted ) { g_bPubPointPathAlerted = true; window.alert( "<%= L_INVALIDCHARSINPATH_TEXT %>" ); document.forms.pluginForm.otherPPURL.focus(); } } else { document.forms.pluginForm.otherPPURL.style.color = "#000000"; if( 0 < window.status.length ) { window.status = ""; } return( true ); } return( false ); <% jsCATCH %> } ////////////////////////////////////////////////////////////////////////// function ValidateLoggingURL() { <% jsTRY %> var szPath; var szName; var bCanBeEnabled; var bValidPath; bCanBeEnabled = true; szPath = new String( document.forms.pluginForm.loggingURL.value ); szName = new String( document.forms.pluginForm.loggingURL.value ); if( ( 0 == szPath.length ) || ( 0 == szName.length ) || ( "#ff0000" == document.forms.pluginForm.loggingURL.style.color ) ) { bCanBeEnabled = false; } bValidPath = false; var szIllegalChars = /;|\^|\'|\<|\>|\`|\f|\n|\r/gi; if( -1 == szPath.search( szIllegalChars ) ) { bValidPath = true; } if( false == bValidPath ) { document.forms.pluginForm.loggingURL.style.color = "#ff0000"; document.forms.pluginForm.ok.disabled = true; window.status = "<%= Server.HTMLEncode( L_INVALIDCHARSINLOGURL_TEXT ) %>"; if( false == g_bLoggingURLAlerted ) { g_bLoggingURLAlerted = true; window.alert( "<%= L_INVALIDCHARSINLOGURL_TEXT %>" ); document.forms.pluginForm.loggingURL.focus(); } } else { if( 0 < window.status.length ) { window.status = ""; } document.forms.pluginForm.loggingURL.style.color = "#000000"; return( true ); } return( false ); <% jsCATCH %> } /////////////////////////////////////////////////////////////////////////// function IsNaturalNumber( szValue ) { <% jsTRY %> var dwNumber; var szNumber = szValue; var szConvertedNumber; var regExpTest = new RegExp( /^\d+$/gi ); if( ! regExpTest.test( szValue ) ) { return( false ); } return( true ); <% jsCATCH %> return( false ); } //////////////////////////////////////////////////////////// function IsValidPortNumber( szValue ) { <% jsTRY %> var dwNumber = new Number( szValue ); if( dwNumber > 65535 ) { return( false ); } if( dwNumber <= 0 ) { return( false ); } return( true ); <% jsCATCH %> } //////////////////////////////////////////////////////////////// function CheckUserEntries() { <% jsTRY %> var bEntriesAreValid; do { bEntriesAreValid = ValidateIPAddrEntry(); if( ! bEntriesAreValid ) { window.status = "failed in ValidateIPAddrEntry"; break; } bEntriesAreValid &= CheckPortEntry(); if( ! bEntriesAreValid ) { window.status = "failed in CheckPortEntry"; break; } bEntriesAreValid &= CheckTTLEntry(); if( ! bEntriesAreValid ) { window.status = "failed in CheckTTLEntry"; break; } bEntriesAreValid &= CheckUnicastRolloverOptions(); if( ! bEntriesAreValid ) { window.status = "failed in CheckUnicastRolloverOptions"; break; } bEntriesAreValid &= ValidatePubPointPath(); if( ! bEntriesAreValid ) { window.status = "failed in ValidatePubPointPath"; break; } bEntriesAreValid &= ValidateLoggingURL(); if( ! bEntriesAreValid ) { window.status = "failed in ValidateLoggingURL"; break; } } while ( false ); document.forms.pluginForm.ok.disabled = ! bEntriesAreValid; <% jsCATCH %> } //////////////////////////////////////////////////////////////// function CheckPortEntry() { <% jsTRY %> var dwIPPortVal; var dwPortVal; dwPortVal = document.forms.pluginForm.port.value; if( ! IsNaturalNumber( document.forms.pluginForm.port.value ) || ! IsValidPortNumber( document.forms.pluginForm.port.value ) ) { document.forms.pluginForm.port.style.color = "#ff0000"; return( false ); } document.forms.pluginForm.port.style.color = "#000000"; return( true ); <% jsCATCH %> } //////////////////////////////////////////////////////////////// function CheckTTLEntry() { <% jsTRY %> var szTTLVal; var dwTTLVal; var szTTLValue = new String( document.forms.pluginForm.customTTL.value ); if( 0 == document.forms.pluginForm.TTL.selectedIndex ) // custom TTL needs to be specified { if( 0 == szTTLValue.length ) { document.forms.pluginForm.customTTL.disabled = false; return( false ); } if( ! IsNaturalNumber( szTTLValue ) ) { document.forms.pluginForm.customTTL.style.color = "#ff0000"; return( false ); } dwTTLVal = Number( szTTLValue ); if( ( 0 >= dwTTLVal ) || ( dwTTLVal > 255 ) ) { document.forms.pluginForm.customTTL.style.color = "#ff0000"; return( false ); } document.forms.pluginForm.customTTL.style.color = "#000000"; } return( true ); <% jsCATCH %> } //////////////////////////////////////////////////////////////// function CheckUnicastRolloverOptions( bSimulateClick ) { <% jsTRY %> if( bSimulateClick ) { document.forms.pluginForm.enableUnicastRollover.checked = ! document.forms.pluginForm.enableUnicastRollover.checked; } if( document.forms.pluginForm.enableUnicastRollover.checked ) { <% if brMSIE = g_dwBrowserType then %> document.all.localPPText.disabled = false; document.all.otherPPText.disabled = false; <% end if %> document.forms.pluginForm.otherPPURL.disabled = document.forms.pluginForm.RolloverToLocalPP[0].checked; document.forms.pluginForm.RolloverToLocalPP[0].disabled = false; document.forms.pluginForm.RolloverToLocalPP[1].disabled = false; } else { <% if brMSIE = g_dwBrowserType then %> document.all.localPPText.disabled = true; document.all.otherPPText.disabled = true; <% end if %> document.forms.pluginForm.otherPPURL.disabled = true; document.forms.pluginForm.RolloverToLocalPP[0].disabled = true; document.forms.pluginForm.RolloverToLocalPP[1].disabled = true; } return( true ); <% jsCATCH %> } //////////////////////////////////////////////////////////////// function TogglePP( dwWhichRadioButton ) { <% jsTRY %> if( document.forms.pluginForm.RolloverToLocalPP[0].disabled ) { return; } if( 0 == dwWhichRadioButton ) { document.forms.pluginForm.RolloverToLocalPP[0].checked = true; document.forms.pluginForm.RolloverToLocalPP[1].checked = false; document.forms.pluginForm.otherPPURL.disabled = true; } else { document.forms.pluginForm.RolloverToLocalPP[0].checked = false; document.forms.pluginForm.RolloverToLocalPP[1].checked = true; document.forms.pluginForm.otherPPURL.disabled = false; } <% jsCATCH %> } //////////////////////////////////////////////////////////////// function TTLEntrySync( bCustomEntry ) { <% jsTRY %> var dwNumOptions = 0; var options; var ttlSelect; var szCustomTTL; var bMatch = false; ttlSelect = document.forms.pluginForm.TTL; szCustomTTL = document.forms.pluginForm.customTTL.value; options = ttlSelect.options; dwNumOptions = options.length; if( ! bCustomEntry ) { if( ttlSelect[ 0 ].selected ) { document.forms.pluginForm.customTTL.disabled = false; document.forms.pluginForm.customTTL.focus(); } else { document.forms.pluginForm.customTTL.disabled = true; document.forms.pluginForm.customTTL.value = ""; } } else { for( i = 1; i < dwNumOptions; i++ ) { if( ttlSelect[ i ].value == szCustomTTL ) { ttlSelect[ i ].selected=true; bMatch = true; } else { ttlSelect[ i ].selected=false; } } if( ! bMatch ) { ttlSelect[ 0 ].selected=true; } } <% jsCATCH %> } //////////////////////////////////////////////////////////////// function ReloadForSpecifiedScope() { <% jsTRY %> var dwSelectedIndex; var szNewQS; dwSelectedIndex = document.forms.pluginForm.ScopeList.selectedIndex; <% if ( "" = GetFormStr( "ScopeList" ) ) then %> if( 0 < dwSelectedIndex ) <% else %> if( 0 <= dwSelectedIndex ) <% end if %> { document.location = "MulticastSink.asp?server=<%= g_strQueryStringServer %>&ppID=<%= g_strPubPointID %>&category=<%= g_strCategory %>&pluginIndex=<%= qs( "pluginIndex" ) %>&referrer=" + SafeEscape( "<%= GetPostOrQsVal( "referrer" ) %>" ) + "&SelectedProtocol=" + document.forms.pluginForm.SelectedProtocol.options[ dwSelectedIndex ].innerText + "&ProtocolIndex=" + ( dwSelectedIndex - 1 ); } <% jsCATCH %> } //////////////////////////////////////////////////////////////// function ReloadForSpecifiedTTL() { <% jsTRY %> var dwSelectedIndex; var szNewQS; dwSelectedIndex = document.forms.pluginForm.ttl.selectedIndex; <% if ( 0 = lTTLOption ) then %> if( 0 < dwSelectedIndex ) <% else %> if( 0 <= dwSelectedIndex ) <% end if %> { document.location = "MulticastSink.asp?server=" + "<%= g_strQueryStringServer %>" + "&ppID=" + "<%= g_strPubPointID %>" + "&category=<%= g_strCategory%>&pluginIndex=<%= qs( "pluginIndex" ) %>&referrer=" + SafeEscape( "<%= GetPostOrQsVal( "referrer" ) %>" ) + "&SelectedProtocol=" + document.forms.pluginForm.SelectedScope.options[ dwSelectedIndex ].innerText + "&ttl=" + ( dwSelectedIndex - 1 ); } <% jsCATCH %> } //////////////////////////////////////////////////////////////// function ValidateIPAddrEntry() { <% jsTRY %> var szIPAddr; var dwLenIPAddr; var bCanBeEnabled; var szLegalIPAddrChars; var i; szLegalIPAddrChars = ".;"; bCanBeEnabled = true; szIPAddr = document.forms.pluginForm.IPAddress.value; dwLenIPAddr = szIPAddr.length; i = 0; if( 0 == dwLenIPAddr ) { bCanBeEnabled = false; } else { // // walk the legal char array and ensure that our chars fall somewhere within this range of valid entries // for( i="0" ; i < dwLenIPAddr ; i++ ) { if( isNaN( szIPAddr.charAt( i ) ) ) { if( -1 == szLegalIPAddrChars.indexOf( szIPAddr.charAt( i ) ) ) { bCanBeEnabled = false; break; } } } } if( bCanBeEnabled ) { if( 0 < window.status.length ) { window.status = ""; } document.forms.pluginForm.IPAddress.style.color = "#000000"; } else { window.status ="<%= Server.HTMLEncode( L_INVALIDIPADDRESS_TEXT ) %>"; document.forms.pluginForm.IPAddress.style.color = "#ff0000"; } document.forms.pluginForm.ok.disabled = ! bCanBeEnabled; return( bCanBeEnabled ); <% jsCATCH %> } <% if bPubPointRunningPluginEnabled then %> function PreSubmitFcn() { <% jsTRY %> window.alert( "<%= RemoveDangerousCharacters( L_MCASTRUNNING_TEXT ) %>" ); return( true ); <% jsCATCH %> } <% end if %> --> </script> <link rel="stylesheet" type="text/css" href="<%= Session( "cssName" ) %>"> </head> <body class="pluginBody" onLoad="JavaScript:CheckUserEntries();" <% if FALSE = bRunningOnWhistlerAdvServer then %> onLoad="JavaScript:Cancel();" <% end if %> oncontextmenu="JavaScript:event.cancelBubble=true;return false;"> <% DrawPluginBanner %> <table width="90%" cellspacing="0" cellpadding="0" border="0"> <tr> <td valign=top> <% WriteStdPluginForm %> <table width=100% cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan=4> <div class="helptext"> <br> </div> </td> </tr> <tr> <td colspan=10> <table class="propgroupbox" cellspacing="1" cellpadding="1" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr><td><center> <table cellspacing="0" cellpadding="0" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr> <td width=1> </td> <td colspan=3> <div class="helptext"> <% RenderWithErrorCheck Server.HTMLEncode( L_DESTMCASTIPPORT_TEXT ), "IPPort" %><br> </div> </td> </tr> <tr> <td width=1> </td> <td colspan=3> <table width=100% cellpadding="0" cellspacing="0" border=0> <tr> <td width=10> </td> <td colspan=2> <% RenderWithErrorCheck Server.HTMLEncode( L_SPECIFYMANUALLY_TEXT ), "IPAddr" %> </td> </tr> <tr> <td width=10> </td> <td colspan=3> <input type="text" name="IPAddress" tabIndex=1 class="input" value="<% if( 0 < Len( strNewIPAddr ) ) then Response.Write( RemoveSpecifiedChars( strNewIPAddr, REGEXP_DANGEROUS_CHARS ) ) else Response.Write( RemoveSpecifiedChars( strIPAddr, REGEXP_DANGEROUS_CHARS ) ) end if %>" <% if( ( "IPAddr" = Session( "ErrorCulprit" ) ) and ( 0 <> Session( "PageReloadedToDisplayError" ) ) ) then %> style="color:#ff0000" <% end if %> onChange="JavaScript:CheckUserEntries();" onPaste="JavaScript:CheckUserEntries();" onKeyUp="JavaScript:CheckUserEntries();" onKeyDown="JavaScript:CheckUserEntries();" > </td> <td> </td> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td width=10> </td> <td colspan=1> <div ID="portText" class="defaultcursor" onClick="JavaScript:document.forms.pluginForm.port.focus();"><% RenderWithErrorCheck Server.HTMLEncode( L_PORTCOLON_TEXT ), "IPPort" %></div> </td> <td width=1> </td> <td> <A ID="TTLText" class="defaultcursor" onClick="JavaScript:document.forms.pluginForm.TTL.focus();"><% RenderWithErrorCheck Server.HTMLEncode( L_MCASTTTL_TEXT ), "autoTTL" %> </A> </td> <td> <A ID="CustomTTLText" class="defaultcursor" onClick="JavaScript:document.forms.pluginForm.customTTL.focus();"><% RenderWithErrorCheck Server.HTMLEncode( L_MCASTMANUALTTL_TEXT ), "customTTL" %> </A> </td> </tr> <tr> <td width=10> </td> <td colspan=1> <input type="text" name="port" onChange="JavaScript:CheckUserEntries();" onPaste="JavaScript:CheckUserEntries();" onKeyDown="JavaScript:CheckUserEntries();" onKeyUp="JavaScript:CheckUserEntries();" value="<%= Server.HTMLEncode( dwIPPort ) %>" size="<% if( brMSIE = g_dwBrowserType ) then %>4<% else %>6<% end if %>" maxlength=6 tabindex=5 class="input" > </td> <td width=1> </td> <td> <select name="TTL" tabindex=6 class="input" onChange="JavaScript:TTLEntrySync( false );CheckUserEntries();" onPaste="JavaScript:TTLEntrySync( false );CheckUserEntries();"> <option value="0" <% if 0 = lTTLOption then Response.Write( "selected " ) end if%> > <%= Server.HTMLEncode( L_CHOOSETTL_TEXT ) %> <option value="1" <% if 1 = lTTLOption then Response.Write( "selected" ) end if %> > <%= Server.HTMLEncode( L_MCASTTTL1_TEXT ) %> <option value="32" <% if 32 = lTTLOption then Response.Write( "selected" ) end if %> > <%= Server.HTMLEncode( L_MCASTTTL2_TEXT ) %> <option value="64" <% if 64 = lTTLOption then Response.Write( "selected" ) end if %> > <%= Server.HTMLEncode( L_MCASTTTL3_TEXT ) %> <option value="128" <% if 128 = lTTLOption then Response.Write( "selected" ) end if %> > <%= Server.HTMLEncode( L_MCASTTTL4_TEXT ) %> <option value="255" <% if 255 = lTTLOption then Response.Write( "selected" ) end if %> > <%= Server.HTMLEncode( L_MCASTTTL5_TEXT ) %> </select> </td> <td> <input type="text" name="customTTL" onClick="JavaScript:TTLEntrySync( true );" onChange="JavaScript:TTLEntrySync( true );CheckUserEntries();" onPaste="JavaScript:TTLEntrySync( true );CheckUserEntries();" onKeyDown="JavaScript:TTLEntrySync( true );CheckUserEntries();" onKeyUp="JavaScript:TTLEntrySync( true );CheckUserEntries();" value="<% if( ( 0 = lTTLOption ) and ( 0 <> lTTLValue ) ) then Response.Write( Server.HTMLEncode( lTTLValue ) ) end if %>" size="<% if( brMSIE = g_dwBrowserType ) then %>4<% else %>6<% end if %>" maxlength=6 tabindex=7 class="input" > </td> </tr> </table> </td> </tr> <tr><td> </td></tr> </table> </center> </td></tr> </table> </td> </tr> <tr> <td> </td> </tr> <tr> <td colspan=10> <table class="propgroupbox" cellspacing="1" cellpadding="1" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr><td><center> <table cellspacing="0" cellpadding="0" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr> <td colspan=3> <div class=defaultcursor> <input type="checkbox" name="enableUnicastRollover" tabindex=8 <% if bEnableUnicastRollover then Response.Write( " checked " ) end if %> onClick="JavaScript:CheckUnicastRolloverOptions( false );" ><A onClick="JavaScript:CheckUnicastRolloverOptions( true );" class="defaultcursor"><% RenderWithErrorCheck Server.HTMLEncode( L_ENABLEUNICASTROLLOVER_TEXT ), "rollover" %></A> </div> </td> <td> </td> </tr> <tr> <td width=10> </td> <td colspan=4> <input type="radio" name="RolloverToLocalPP" onClick="JavaScript:TogglePP( 0 );" onChange="JavaScript:TogglePP( 0 );" value="localPP" tabindex=9 <% if( bLocalPPRollover ) then %> checked <% end if if( FALSE = bEnableUnicastRollover ) then %> disabled <% end if %> ><A ID="localPPText" <% if( FALSE = bEnableUnicastRollover ) then Response.Write( " disabled " ) end if %> class="defaultcursor" onClick="JavaScript:TogglePP( 0 );"> <% RenderWithErrorCheck Server.HTMLEncode( L_USELOCALPP_TEXT ), "localPP" %></A> </td> </tr> <tr> <td width=10> </td> <td colspan=4> <input type="radio" name="RolloverToLocalPP" value="otherPP" onClick="JavaScript:TogglePP( 1 );" onChange="JavaScript:TogglePP( 1 );" tabindex=10 <% if( FALSE = bLocalPPRollover ) then %> checked <% end if if( FALSE = bEnableUnicastRollover ) then %> disabled <% end if %> ><A ID="otherPPText" <% if( FALSE = bEnableUnicastRollover ) then Response.Write( " disabled " ) end if %> class="defaultcursor" onClick="JavaScript:TogglePP( 1 );"> <% RenderWithErrorCheck Server.HTMLEncode( L_USEOTHERPP_TEXT ), "otherPP" %></A> </td> </tr> <tr> <td width=10> </td> <td> </td> <td> <input type="text" name="otherPPURL" onKeyDown="JavaScript:CheckUserEntries();" onKeyUp="JavaScript:CheckUserEntries();" onChange="JavaScript:CheckUserEntries();TogglePP( 1 );" onPaste="JavaScript:CheckUserEntries();TogglePP( 1 );" value="<%= RemoveSpecifiedChars( strUnicastRolloverPP, REGEXP_ILLEGAL_PATH_CHARS ) %>" size="<% if( brMSIE = g_dwBrowserType ) then %>60<% else %>40<% end if %>" tabIndex=11 <% if( FALSE = bEnableUnicastRollover ) then Response.Write( " disabled " ) end if %> > </td> <td> </td> </tr> <tr> <td> </td> </tr> </table> </center></td></tr> </table> </td> </tr> <tr> <td colspan=4> <br> </td> </tr> </table> <table class="propgroupbox" cellspacing="1" cellpadding="1" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr><td><center> <table cellspacing="0" cellpadding="0" border="0" width="<%= Server.HTMLEncode( STDTABLEWIDTH ) %>"> <tr> <td colspan=4> <div class="defaultcursor"><%= Server.HTMLEncode( L_CHOOSENIC_TEXT ) %></div> </td> </tr> <tr> <td colspan=1> </td> <td> <select ID="NICIP" name="NICIP" tabindex=12 class="input"> <% BuildNICIPOptionList %> </select> </td> </tr> <tr> <td> <br> </td> </tr> <tr> <td colspan=4> <div class="defaultcursor"><% RenderWithErrorCheck Server.HTMLEncode( L_LOGGINGURLCOLON_TEXT ), "loggingURL" %></div> </td> </tr> <tr> <td colspan=1> </td> <td> <input type="text" name="loggingURL" size="<% if( brMSIE = g_dwBrowserType ) then %>80<% else %>40<% end if %>" tabIndex=13 class="input" onKeyDown="JavaScript:CheckUserEntries();" onKeyUp="JavaScript:CheckUserEntries();" onChange="JavaScript:CheckUserEntries();" onPaste="JavaScript:CheckUserEntries();" value="<%= RemoveSpecifiedChars( strLoggingURL, REGEXP_ILLEGAL_PATH_CHARS ) %>"> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <td> <br> </td> </tr> <tr> <td> <tr> <td valign=bottom> <input type="submit" id="ok" align="baseline" tabIndex=14 value="<%= Server.HTMLEncode( L_OKAYBUTTON_TEXT ) %>" <% if bPubPointRunningPluginEnabled then %>onClick="JavaScript:PreSubmitFcn();"<% end if %>> <input type="button" align="baseline" name="cancel" onclick="Cancel()" tabIndex=15 value="<%= Server.HTMLEncode( L_CANCELBUTTONSPACED_TEXT ) %>"> <input type="button" align="baseline" name="help" id="help" onclick="JavaScript:DoPluginHelp( '<%= H_MULTICASTSINKHELPTOPIC %>' )" value="<%= Server.HTMLEncode( L_HELPBUTTONSPACED_TEXT ) %>" tabindex=16> </td> </tr> </td> </tr> </form> </table> <% if( 0 = StrComp( "-2147013895", Session( "ErrorNumber" ), vbTextCompare ) ) then %><script language="javascript">alert( "<%= L_MCASTADDRINVALID_TEXT %>" );window.history.back();</script> <% elseif( 0 = StrComp( "-1072889800", Session( "ErrorNumber" ), vbTextCompare ) ) then %><script language="javascript">alert( "<%= L_MCASTADDRRESERVED_TEXT %>" );window.history.back();</script> <% else AlertUserWithPopupErrorDialog end if OnErrorGoBack DrawStdFooter %> <script language="JavaScript"> // Prime the unicast rollover fields setTimeout( "CheckUnicastRolloverOptions( false );", 250, "JavaScript" ); </script> </body> </html> <% LatchCurrentPage "plugins/MulticastSink.asp", qs EndErrorHandling "MulticastSink.asp" on error resume next PluginsASPCleanup %>